package email

import (
	c "db_ping/config"
	"gopkg.in/gomail.v2"
	"strings"
)

var (
	m    *gomail.Message
	mail *c.MailConfig
)

func InitEmail(ep *c.MailConfig) {
	mail = ep
	m = gomail.NewMessage()
	var toers []string
	if len(ep.Toers) == 0 {
		return
	}

	for _, tmp := range strings.Split(ep.Toers, ",") {
		toers = append(toers, strings.TrimSpace(tmp))
	}

	// 收件人可以有多个，故用此方式
	m.SetHeader("To", toers...)

	//抄送列表
	if len(ep.Ccers) != 0 {
		for _, tmp := range strings.Split(ep.Ccers, ",") {
			toers = append(toers, strings.TrimSpace(tmp))
		}
		m.SetHeader("Cc", toers...)
	}

	// 发件人
	// 第三个参数为发件人别名，如"李大锤"，可以为空（此时则为邮箱名称）
	m.SetAddressHeader("From", ep.FromEmail, ep.FromEmailAlias)
}

// SendEmail body支持html格式字符串
func SendEmail(subject, body string) {
	// 主题
	m.SetHeader("Subject", subject)
	// 正文
	m.SetBody("text/html", body)

	d := gomail.NewDialer(mail.ServerHost, mail.ServerPost, mail.FromEmail, mail.FromPasswd)
	// 发送
	err := d.DialAndSend(m)
	if err != nil {
		panic(err)
	}
}
